package com.xiaotu.storage;

import com.xiaotu.common.util.Constants;
import com.xiaotu.common.util.DataRedisKeyUtils;
import com.xiaotu.common.util.SepratorUtil;
import com.xiaotu.storage.converter.AConverter;
import com.xiaotu.storage.converter.ConverterFactory;
import com.xiaotu.storage.model.CacheDataModel;
import net.sf.json.JSONObject;
import org.springframework.stereotype.Component;

import java.util.Date;

/**
 * 电影备案立项公示 转储
 */
@Component("MoviePublicStorageProcessor")
public class MoviePublicStorageProcessor extends AHSetStorageProcessor {
    protected final String[] FIELD_ARR = new String[]{
            "id", "pubTitle",
            "sitePubDate", "movieType",
            "projectNo", "movieName",
            "filingUnit", "screenwriter",
            "recordResults", "placeFiling",
            "collectTime"};

    private final String[] CONVERT_ARR = new String[]{
            AConverter.STRING_CONVERT, AConverter.STRING_CONVERT,
            AConverter.STRING_CONVERT, AConverter.STRING_CONVERT,
            AConverter.STRING_CONVERT, AConverter.STRING_CONVERT,
            AConverter.STRINGARRAY_CONVERT, AConverter.STRINGARRAY_CONVERT,
            AConverter.STRING_CONVERT, AConverter.STRING_CONVERT,
            AConverter.TIMESTAMP_CONVERT};

    protected final boolean[] THROW_ARR = new boolean[]{true, true, true, true, true, true, true, true, true,
            true, true};

    @Override
    protected String getRedisKey(Date date) {
        return DataRedisKeyUtils.getKey(Constants.DataRedisKey.Movie_Public_YYYYMMDD, date);
    }

    @Override
    public String process(JSONObject target, CacheDataModel cacheData,
                          Date date) {
        return this.list2CSVLine(ConverterFactory.convert(target, FIELD_ARR, CONVERT_ARR,
                THROW_ARR), SepratorUtil.SEP_PIPE);
    }

    @Override
    public String getDataType() {
        return Constants.PageDataType.MOVIE_RELATE;
    }

    @Override
    public String getTaskType() {
        return Constants.SpiderTaskType.MOV_PUBLIC;
    }
}
